问题原因是由于在编译OpenCV时使用了不匹配的编译器或编译选项导致的。解决方法包括使用与OpenCV版本兼容的编译器,检查输入数据、异常处理、更新OpenCV版本、内存管理、参数设置、调用顺序和重构代码等。具体例子给出了避免"ERestartExc (tmp)"错误的措施,如释放内存、使用适当的数据类型和避免内存泄漏。